package com.zhouhuo.servicebase.config;

import com.google.common.base.Predicates;
import java.util.function.Predicate;
import jdk.nashorn.internal.ir.ReturnNode;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Swagger 配置类
 * @author zhouhuo
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
  @Bean
  public Docket webApiConfig() {

    return new Docket(DocumentationType.SWAGGER_2).groupName("webApi").apiInfo(webApiInfo()).select().paths(Predicates.not(
        PathSelectors.regex("/admin/.*"))).paths(Predicates.not(PathSelectors.regex("/error.*"))).build();
  }

  private ApiInfo webApiInfo() {
    return new ApiInfoBuilder().title("课程中心API文档").description("本文档描述了课程中心微服务接口定义").
        version("1.0").contact(new Contact("Helen","http://zhouhuo.com","helloworld@qq.com")).build();
  }

}
